#region using
using System;
using System.Data;

using DbmlManager.Lib.Utility;
#endregion

namespace DbmlManager.Lib.Database
{
  public interface IDbConnectionInfo : IChangeableObject
  {
    // Properties
		StorageTypeEnum StorageType  { get; set; } 
    string ServerName { get; set; }
		string Port       { get; set; }
    string DbName     { get; set; }
    string UserName   { get; set; }
    string Password   { get; set; }
    bool   HasConnectionSettings { get; }
    DbAuthenticationMethods AuthenticationMethod { get; set; }
    bool   AppendExtraConnectionString { get; set; }
    string ExtraConnectionString { get; set; }
    bool   UseCustomConnectionString { get; set; }
    string CustomConnectionString { get; set; }
    string ConnectionString { get; }

		// SQL Server and MySQl uses different characters ('@' vs. '?') for
		// IDBCommand parameter markers.
		char ParameterMarker { get; }

    // Methods
    void          Copy(IDbConnectionInfo dbci);
		IDbCreator    DbCreator();
		IDbConnection Connection();
  }
}
